﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WeChatBotSDK.JsonEx;

namespace WeChatBotSDK.Models.EventCallback
{
    /// <summary>
    /// 表示好友请求的数据信息
    /// </summary>
    public class FriendRequestData : IWeChatEventData
    {
        /// <summary>
        /// 微信 ID
        /// </summary>
        [JsonPropertyName("wxid")]
        public string Wxid { get; set; }

        /// <summary>
        /// 微信号
        /// </summary>
        [JsonPropertyName("wxNum")]
        public string WxNum { get; set; }

        /// <summary>
        /// 昵称
        /// </summary>
        [JsonPropertyName("nick")]
        public string Nick { get; set; }

        /// <summary>
        /// 昵称简拼
        /// </summary>
        [JsonPropertyName("nickBrief")]
        public string NickBrief { get; set; }

        /// <summary>
        /// 昵称全拼
        /// </summary>
        [JsonPropertyName("nickWhole")]
        public string NickWhole { get; set; }

        /// <summary>
        /// V3 数据，用于同意好友请求时
        /// </summary>
        [JsonPropertyName("v3")]
        public string V3 { get; set; }

        /// <summary>
        /// V4 数据，用于同意好友请求时
        /// </summary>
        [JsonPropertyName("v4")]
        public string V4 { get; set; }

        /// <summary>
        /// 签名
        /// </summary>
        [JsonPropertyName("sign")]
        public string Sign { get; set; }

        /// <summary>
        /// 国家
        /// </summary>
        [JsonPropertyName("country")]
        public string Country { get; set; }

        /// <summary>
        /// 省份
        /// </summary>
        [JsonPropertyName("province")]
        public string Province { get; set; }

        /// <summary>
        /// 城市
        /// </summary>
        [JsonPropertyName("city")]
        public string City { get; set; }

        /// <summary>
        /// 头像小图 URL
        /// </summary>
        [JsonPropertyName("avatarMinUrl")]
        public string AvatarMinUrl { get; set; }

        /// <summary>
        /// 头像大图 URL
        /// </summary>
        [JsonPropertyName("avatarMaxUrl")]
        public string AvatarMaxUrl { get; set; }

        /// <summary>
        /// 性别
        /// </summary>
        [JsonConverter(typeof(StringToEnumConverter<SexEnum>))]
        [JsonPropertyName("sex")]
        public SexEnum Sex { get; set; }

        /// <summary>
        /// 附言
        /// </summary>
        [JsonPropertyName("content")]
        public string Content { get; set; }

        /// <summary>
        /// 来源
        /// </summary>
        [JsonConverter(typeof(StringToEnumConverter<SexEnum>))]
        [JsonPropertyName("scene")]
        public SceneEnum Scene { get; set; }

        /// <summary>
        /// 消息 ID
        /// </summary>
        [JsonPropertyName("msgId")]
        public string MsgId { get; set; }
    }
}
